/**
 * 
 */
package com.uva.dbcs.gestionDeVehiculos.persistencia;

import java.util.List;

import javax.ejb.Local;

import com.uva.dbcs.gestionDeVehiculos.dominio.Fabricante;
import com.uva.dbcs.gestionDeVehiculos.dominio.Vehiculo;
import com.uva.dbcs.utilidades.persistencia.GenericDAO;

/**
 * @author seten
 *
 */
@Local
public interface VehiculoDAO extends GenericDAO<Vehiculo, Integer> {

	/**
	 * Devuelve los vehículos que cumplen las cualidades indicadas,
	 * si se indica gps = false se descarta este argumento.
	 * 
	 * Si se indica los costes maximos o mínimos = 0 o negativos no
	 * se tienen en cuenta
	 * 
	 * Si el idFabricante llega 0 o -1 tampoco se tiene en cuenta
	 * 
	 * Las puertas son las mínimas; por lo que se tiene siempre en cuenta
	 * 
	 * @param costeMaximo
	 * @param costeMinimo
	 * @param gps
	 * @param idFabricante
	 * @param puertas
	 * @return
	 */
	List<Vehiculo> find(int costeMaximo, int costeMinimo, boolean gps,
			Fabricante Fabricante, int puertas);

}
